Switch Roleしたアカウントから別アカウントのSQSのキューにメッセージをおくってみる
どうも!大阪オフィスの西村祐二です。
AWS LambdaがSQSをイベントソースとしてサポートしたことで、 SQSを使う機会がありました。
そのとき、Switch Roleしたアカウントから別アカウントのSQSのキューにメッセージを送るという状況だったので、Switch Roleしたアカウントからのアクセスを許可する方法について記載したいとおもいます。
SQSの設定
Switch Roleしたアカウントからのアクセスを許可するためにマネージメントコンソールから、キューの設定変更を行います。
▼「アクセス許可の追加」をクリックします。
▼Switch Roleした対象ロールを追加
下記のようなSwitch Roleするためのロールを指定するだけでOKです。とても簡単ですね。
arn:aws:iam::0000000000:role/xxxxxxxx
動作確認
Switch Roleしたアカウントで下記pythonスクリプトを実行すると、スクリプトで指定した別アカウントのSQSキューに対して、メッセージが送られます。
import boto3 import json # SQS SQS = boto3.resource('sqs') QUEUE = SQS.Queue('url') # アクセスを許可した別アカウントのSQSキューを指定 URL = 'https://sqs.ap-northeast-1.amazonaws.com/00000000/xxxxxx' def put_sqs(item): resp = QUEUE.send_message( MessageBody=item, QueueUrl=URL ) print(resp) put_sqs('test')
さいごに
いかがだったでしょうか。
Switch Roleしたアカウントから別のアカウントのSQSのキューにメッセージをおくってみました。
とても簡単に別アカウントからのアクセスを許可したり、拒否したり制御ができるのでとてもいいなと感じました。これからどんどん使っていきたいと思います。
誰かのお役に立てたら幸いです。